package itcz.example.pattern.create_action.singleton.demo6;

/**
 * @ClassName: Singleton
 * @Author: ITCZ
 * @Date: 2025-04-21
 * @Description: 懒汉式4(静态内部类), 推荐方式
 */
public class Singleton {

    // 私有构造方法，防止被外部实例化
    private Singleton() {

    }

    public static Singleton getInstance() {
        return SingletonHolder.INSTANCE;
    }

    // 静态内部类，在jvm加载外部类时不会加载内部类，只有内部类的属性/方法被调用时才会被加载，
    // 使用static 修饰 保证只被实例化一次
    private static class SingletonHolder {
        private static final Singleton INSTANCE = new Singleton();
    }

}
